"""
wraps函数的使用
from functools import wraps

作用：
functools.wraps 可以将原函数对象的指定属性
复制给包装函数对象, 默认有 module、name、doc,或者通过参数选择
"""
from functools import wraps


def log(func):
    @wraps(func)
    def with_logging(*args, **kwargs):
        print("%s was calling" % func.__name__)
        return func(*args, **kwargs)

    return with_logging


@log
# test = log(test)
def test(x):
    """求x*x的值"""
    return x * x


print(test.__name__)
print(test.__doc__)
"""
with_logging
None
"""
